home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / c / gnulib / sun4.md / divide.s < prev    next >
Text File  |  1989-09-24  |  4KB  |  181 lines

  1.  
  2.         .text
  3.         .globl .udiv
  4.     .globl .div
  5. .udiv:
  6.     ba    L0x24
  7.     clr    %g1
  8. .div:
  9.     orcc    %o1, %o0, %g0
  10.     bge    L0x24
  11.     xor    %o1, %o0, %g1
  12. L0xc:    orcc    %g0, %o1, %g0
  13. L0x10:    bge    L0x20
  14. L0x14:    orcc    %g0, %o0, %g0
  15. L0x18:    bge    L0x24
  16. L0x1c:    sub    %g0, %o1, %o1
  17. L0x20:    sub    %g0, %o0, %o0
  18. L0x24:    orcc    %o1, %g0, %o5
  19. L0x28:    bne    L0x38
  20. L0x2c:    mov    %o0, %o3
  21. L0x30:    ba    L0x2a0
  22. L0x34:    nop
  23. L0x38:    cmp    %o3, %o5
  24. L0x3c:    blu    L0x28c
  25. L0x40:    clr    %o2
  26. L0x44:    sethi    %hi(0x8000000),    %g2
  27. L0x48:    cmp    %o3, %g2
  28. L0x4c:    blu    L0xe8
  29. L0x50:    clr    %o4
  30. L0x54:    cmp    %o5, %g2
  31. L0x58:    bgeu    L0x8c
  32. L0x5c:    mov    0x1, %g3
  33. L0x60:    sll    %o5, 0x4, %o5
  34. L0x64:    ba    L0x54
  35. L0x68:    add    %o4, 0x1, %o4
  36. L0x6c:    addcc    %o5, %o5, %o5
  37. L0x70:    bgeu    L0x8c
  38. L0x74:    add    %g3, 0x1, %g3
  39. L0x78:    sll    %g2, 0x4, %g2
  40. L0x7c:    srl    %o5, 0x1, %o5
  41. L0x80:    add    %o5, %g2, %o5
  42. L0x84:    ba    L0xa0
  43. L0x88:    sub    %g3, 0x1, %g3
  44. L0x8c:    cmp    %o5, %o3
  45. L0x90:    blu    L0x6c
  46. L0x94:    nop
  47. L0x98:    be    L0xa0
  48. L0x9c:    nop
  49. L0xa0:    subcc    %g3, 0x1, %g3
  50. L0xa4:    bl    L0x278
  51. L0xa8:    nop
  52. L0xac:    sub    %o3, %o5, %o3
  53. L0xb0:    mov    0x1, %o2
  54. L0xb4:    ba,a    L0xd8
  55. L0xb8:    sll    %o2, 0x1, %o2
  56. L0xbc:    bl    L0xd0
  57. L0xc0:    srl    %o5, 0x1, %o5
  58. L0xc4:    sub    %o3, %o5, %o3
  59. L0xc8:    ba    L0xd8
  60. L0xcc:    add    %o2, 0x1, %o2
  61. L0xd0:    add    %o3, %o5, %o3
  62. L0xd4:    sub    %o2, 0x1, %o2
  63. L0xd8:    subcc    %g3, 0x1, %g3
  64. L0xdc:    bge    L0xb8
  65. L0xe0:    orcc    %g0, %o3, %g0
  66. L0xe4:    ba,a    L0x278
  67. L0xe8:    sll    %o5, 0x4, %o5
  68. L0xec:    cmp    %o5, %o3
  69. L0xf0:    bleu    L0xe8
  70. L0xf4:    addcc    %o4, 0x1, %o4
  71. L0xf8:    be    L0x28c
  72. L0xfc:    sub    %o4, 0x1, %o4
  73. L0x100:    orcc    %g0, %o3, %g0
  74. L0x104:    sll    %o2, 0x4, %o2
  75. L0x108:    bl    L0x1c4
  76. L0x10c:    srl    %o5, 0x1, %o5
  77. L0x110:    subcc    %o3, %o5, %o3
  78. L0x114:    bl    L0x170
  79. L0x118:    srl    %o5, 0x1, %o5
  80. L0x11c:    subcc    %o3, %o5, %o3
  81. L0x120:    bl    L0x14c
  82. L0x124:    srl    %o5, 0x1, %o5
  83. L0x128:    subcc    %o3, %o5, %o3
  84. L0x12c:    bl    L0x140
  85. L0x130:    srl    %o5, 0x1, %o5
  86. L0x134:    subcc    %o3, %o5, %o3
  87. L0x138:    ba    L0x278
  88. L0x13c:    add    %o2, 0xf, %o2
  89. L0x140:    addcc    %o3, %o5, %o3
  90. L0x144:    ba    L0x278
  91. L0x148:    add    %o2, 0xd, %o2
  92. L0x14c:    addcc    %o3, %o5, %o3
  93. L0x150:    bl    L0x164
  94. L0x154:    srl    %o5, 0x1, %o5
  95. L0x158:    subcc    %o3, %o5, %o3
  96. L0x15c:    ba    L0x278
  97. L0x160:    add    %o2, 0xb, %o2
  98. L0x164:    addcc    %o3, %o5, %o3
  99. L0x168:    ba    L0x278
  100. L0x16c:    add    %o2, 0x9, %o2
  101. L0x170:    addcc    %o3, %o5, %o3
  102. L0x174:    bl    L0x1a0
  103. L0x178:    srl    %o5, 0x1, %o5
  104. L0x17c:    subcc    %o3, %o5, %o3
  105. L0x180:    bl    L0x194
  106. L0x184:    srl    %o5, 0x1, %o5
  107. L0x188:    subcc    %o3, %o5, %o3
  108. L0x18c:    ba    L0x278
  109. L0x190:    add    %o2, 0x7, %o2
  110. L0x194:    addcc    %o3, %o5, %o3
  111. L0x198:    ba    L0x278
  112. L0x19c:    add    %o2, 0x5, %o2
  113. L0x1a0:    addcc    %o3, %o5, %o3
  114. L0x1a4:    bl    L0x1b8
  115. L0x1a8:    srl    %o5, 0x1, %o5
  116. L0x1ac:    subcc    %o3, %o5, %o3
  117. L0x1b0:    ba    L0x278
  118. L0x1b4:    add    %o2, 0x3, %o2
  119. L0x1b8:    addcc    %o3, %o5, %o3
  120. L0x1bc:    ba    L0x278
  121. L0x1c0:    add    %o2, 0x1, %o2
  122. L0x1c4:    addcc    %o3, %o5, %o3
  123. L0x1c8:    bl    L0x224
  124. L0x1cc:    srl    %o5, 0x1, %o5
  125. L0x1d0:    subcc    %o3, %o5, %o3
  126. L0x1d4:    bl    L0x200
  127. L0x1d8:    srl    %o5, 0x1, %o5
  128. L0x1dc:    subcc    %o3, %o5, %o3
  129. L0x1e0:    bl    L0x1f4
  130. L0x1e4:    srl    %o5, 0x1, %o5
  131. L0x1e8:    subcc    %o3, %o5, %o3
  132. L0x1ec:    ba    L0x278
  133. L0x1f0:    add    %o2, -0x1, %o2
  134. L0x1f4:    addcc    %o3, %o5, %o3
  135. L0x1f8:    ba    L0x278
  136. L0x1fc:    add    %o2, -0x3, %o2
  137. L0x200:    addcc    %o3, %o5, %o3
  138. L0x204:    bl    L0x218
  139. L0x208:    srl    %o5, 0x1, %o5
  140. L0x20c:    subcc    %o3, %o5, %o3
  141. L0x210:    ba    L0x278
  142. L0x214:    add    %o2, -0x5, %o2
  143. L0x218:    addcc    %o3, %o5, %o3
  144. L0x21c:    ba    L0x278
  145. L0x220:    add    %o2, -0x7, %o2
  146. L0x224:    addcc    %o3, %o5, %o3
  147. L0x228:    bl    L0x254
  148. L0x22c:    srl    %o5, 0x1, %o5
  149. L0x230:    subcc    %o3, %o5, %o3
  150. L0x234:    bl    L0x248
  151. L0x238:    srl    %o5, 0x1, %o5
  152. L0x23c:    subcc    %o3, %o5, %o3
  153. L0x240:    ba    L0x278
  154. L0x244:    add    %o2, -0x9, %o2
  155. L0x248:    addcc    %o3, %o5, %o3
  156. L0x24c:    ba    L0x278
  157. L0x250:    add    %o2, -0xb, %o2
  158. L0x254:    addcc    %o3, %o5, %o3
  159. L0x258:    bl    L0x26c
  160. L0x25c:    srl    %o5, 0x1, %o5
  161. L0x260:    subcc    %o3, %o5, %o3
  162. L0x264:    ba    L0x278
  163. L0x268:    add    %o2, -0xd, %o2
  164. L0x26c:    addcc    %o3, %o5, %o3
  165. L0x270:    ba    L0x278
  166. L0x274:    add    %o2, -0xf, %o2
  167. L0x278:    subcc    %o4, 0x1, %o4
  168. L0x27c:    bge    L0x104
  169. L0x280:    orcc    %g0, %o3, %g0
  170. L0x284:    bl,a    L0x28c
  171. L0x288:    sub    %o2, 0x1, %o2
  172. L0x28c:    orcc    %g0, %g1, %g0
  173. L0x290:    bl,a    L0x298
  174. L0x294:    sub    %g0, %o2, %o2
  175. L0x298:    jmp    %o7 + 0x8
  176. L0x29c:    mov    %o2, %o0
  177. L0x2a0:    ta    0x2
  178. L0x2a4:    jmp    %o7 + 0x8
  179. L0x2a8:    clr    %o0
  180.  
  181.